home *** CD-ROM | disk | FTP | other *** search
- 100 ' ********************************
- 110 ' * CENTROID *
- 120 ' ********************************
- 130 '
- 140 ' Designed and implemented by:
- 150 ' Christopher C. Bachman
- 160 ' 6-15-86
- 170 ' THIS PROGRAM WILL EXTRACT THE X AND Y CO-ORDINATES FOR EACH CELL IN
- 180 ' AN AUTOCAD DXF FILE TO DETERMINE THE CENTROID OF AN AREA. CELLS ARE
- 190 ' CREATED BY USING THE *DOTS PATTERN WITH THE HATCH COMMAND ON LAYER 0
- 200 ' IN AUTOCAD. THE *DOTS PATTERN SHOULD BE THE ONLY DRAWING ENTITIES
- 210 ' ON LAYER 0 AND SHOULD FILL ONLY THE AREA UNDER ANALYSIS.
- 220 '
- 230 LINE INPUT "Give the DXF filename including path and extension. ",F$
- 240 OPEN F$ FOR INPUT AS #1
- 250 IF EOF(1) THEN 520
- 260 INPUT #1, DRAWING.ENTITY.CODE%
- 270 LINE INPUT #1, DRAWING.ENTITY.NAME$
- 280 IF DRAWING.ENTITY.NAME$ <> "LINE" THEN 250 'Test for line entities.
- 290 INPUT #1, DRAWING.LAYER.CODE% 'All line entities are
- 300 LINE INPUT #1, DRAWING.LAYER.NAME$ 'followed by layer data.
- 310 IF DRAWING.LAYER.NAME$ <> "0" THEN GOTO 250 'Test for lines on layer 0.
- 320 FOR CO.ORDINATES = 1 TO 2
- 330 INPUT #1, CO.ORDINATE.CODE% 'After the layer data comes
- 340 LINE INPUT #1, CO.ORDINATE.DATA$ 'location data for each line.
- 350 '
- 360 ' Starting X co-ordinates have a code of 10.
- 370 '
- 380 IF CO.ORDINATE.CODE% = 10 THEN X.DATA# = VAL(CO.ORDINATE.DATA$)
- 390 '
- 400 ' Starting Y co-ordinates have a code of 20.
- 410 '
- 420 IF CO.ORDINATE.CODE% = 20 THEN Y.DATA# = VAL(CO.ORDINATE.DATA$)
- 430 '
- 440 NEXT CO.ORDINATES
- 450 '
- 460 ' Accumulate totals and cell counter.
- 470 '
- 480 X.TOTAL# = X.TOTAL# + X.DATA#
- 490 Y.TOTAL# = Y.TOTAL# + Y.DATA#
- 500 NO.OF.CELLS = NO.OF.CELLS + 1
- 510 GOTO 250 'Loop til End of File
- 520 CLOSE 1 'Close Dxf file.
- 530 MEAN.OF.X# = X.TOTAL# / NO.OF.CELLS 'Average X value.
- 540 MEAN.OF.Y# = Y.TOTAL# / NO.OF.CELLS 'Average Y value.
- 550 '
- 560 ' Print results.
- 570 '
- 580 PRINT "X CO-ORDINATE FOR CENTROID OF AREA = "MEAN.OF.X#
- 590 PRINT "Y CO-ORDINATE FOR CENTROID OF AREA = "MEAN.OF.Y#
- 600 END